import axios from 'axios'
import store from '@/store/index.js'
import JSONBiginInt from 'json-bigint'
import router from '@/router'
// import { transform } from 'lodash'
const request = axios.create({
  baseURL: 'https://toutiao.itheima.net', // 基础路径
  // 学习transformResponse和响应拦截器
  // 结论1-transformResponse优先级大于拦截器
  // 结论2-transformResponse处理的数据是原始数据(JSON字符串)
  // 结论3-响应拦截器得到transformResponse处理完成数据
  transformResponse: [function (data) {
    try {
      return JSONBiginInt.parse(data)
    } catch (error) {
      return data
    }
  }]
})

// 通过输入，选axios..interceptors.request.use
request.interceptors.request.use(config => {
  // Do something before request is sent
  if (store.state.user) {
    config.headers.Authorization = 'Bearer ' + store.state.user.token
  }
  return config
}, error => {
  // Do something with request error
  return Promise.reject(error)
})
// 定义响应拦截器
request.interceptors.response.use(response => {
  // 报错执行这个方法
  return response
}, error => {
  // 如果没有登录就点击关注，会跳到登录界面
  if (error.response && error.response.status === 401) {
    router.push('/login')
    return Promise.reject(error)
  }
})

export default request
